package com.hugang.io.objectstream;

import org.junit.Test;

import java.io.*;

/**
 * 对象流的使用
 * 1.ObjectInputStream 和 ObjectOutputStream
 * 2.作用：用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中，也能把对象从数据源中还原回来。
 *
 * 3.要想一个java对象是可序列化的，需要满足相应的要求。见Person.java
 *
 *
 * @author hg
 * @date 2020/6/22 10:28
 */
public class ObjectStreamTest {

    /**
     * 序列化
     * @throws IOException
     */
    @Test
    public void testObjectOutputStream() throws IOException {
        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("object.txt"));
        objectOutputStream.writeObject(new User("aa", 23));
        objectOutputStream.flush();
        objectOutputStream.close();
    }

    /**
     * 反序列化
     * @throws IOException
     */
    @Test
    public void testObjectInputStream() throws IOException, ClassNotFoundException {
        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("object.txt"));
        Object o = objectInputStream.readObject();
        System.out.println(o);
        objectInputStream.close();
    }
}
